"""
上面的 try...except... 只是最基本的捕获手段，我们先来解读一下这两个关键字：

try: 尝试运行一段代码，如果没有报错那就是最好
except: 如果try运行的代码报错了，就会触发这个关键字，运行这个关键字对应的代码
但 完整 的异常关键字还有其他两个

try: 尝试运行一段代码，如果没有报错那就是最好
except: 如果try运行的代码报错了，就会触发这个关键字，运行这个关键字对应的代码
else: 如果try运行没问题，就运行else对应的代码
finally：不管try是否运行成功，都会触发这个关键字，运行这个关键字对应的代码
"""

def maybeError(valueList):
    oldValueList = []  # 这里可以是从数据库搜索出来的旧值
    try:
        newValueList = [int(newValue) for newValue in valueList]
    except:
        print(f"哎呀报错啦，你这个列表 {valueList} 不太对劲哦")
    else:
        print("嗯，你这个列表很好很完美，我要清空以前的旧数据，并且把你这个新的存进去")
    finally:
        print("不管怎么样数据库连接我肯定是要关闭的")

# print("first execute:")
# maybeError(['1', '2', '3'])
# print("\nsecond execute:")
# maybeError(['1', 'a', '3'])

# 结果
"""
first execute:
嗯，你这个列表很好很完美，我要清空以前的旧数据，并且把你这个新的存进去
不管怎么样数据库连接我肯定是要关闭的

second execute:
哎呀报错啦，你这个列表 ['1', 'a', '3'] 不太对劲哦
不管怎么样数据库连接我肯定是要关闭的
"""

# caseResult = 0  # 0|1|2|3 未执行|执行中|失败|通过
#
# try:
#     caseResult = 1
#     int('a')
# except:
#     caseResult = 2
# else:
#     caseResult = 3
# finally:
#     print(caseResult)
#     print("用例执行结束,获取结果,存入到测试报告中")

# 当我们使用 异常捕获时，try是必须要写的，except/finally至少要写一个，else不做要求
# 所以，如何利用异常处理机制，要根据实际情况而定

# try:
#     ...
# # except:
# #     ...
# # finally:
# #     ...
# else:
#     ...
